This invention relates to methods of transmitting and receiving error correction data.
Real-time streaming of multimedia content over the internet has become an increasingly common application in recent years. A wide range of multimedia applications, such as on-demand TV, live TV viewing, video conferencing, net meetings, video telephony, voice over internet protocol (VoIP) and many others rely on end-to-end streaming solutions. Unlike a “downloaded” media file, which may be retrieved first in “non-real” time and viewed or played back later, streaming media applications require a media source to encode and to transmit a media signal over a network to a media receiver, which must decode and play the media signal in real time.
Problems can arise when a media stream is transmitted across a network, such as the Internet. For example, a significant packet loss rate across the transmission network often requires re-transmission of the lost data packets. Typically, the lost data packets need be recovered prior to the time the media data in a packet must be decoded to be played. If the lost packet is not received in time, the media that is played out will be erroneous. For example, in VoIP, a VoIP stream can be impaired by routing, queuing, scheduling and serialization effects, which result in loss and jitter (including delays) to data packets. The main factors affecting voice quality are delay and loss which cannot generally be known in advance to the receiving device because they depend on the real-time behaviour of connections throughout the network. Thus some error correction methods are needed.
Forward Error Correction (FEC) is a method in which some redundant packets are transmitted along with the source data packets. The FEC packets allow packet losses to be recovered at the receiver. The FEC packets may be included in the transmitted stream of data packets before it is known whether any packet losses have occurred at the receiver and if any repairs are necessary. The advantage of FEC is that retransmission of data can often be avoided (at the cost of higher bandwidth requirements on average) and is therefore applied in situations where longer round-trip transmission latencies or the lack of a feedback channel can make retransmissions infeasible or impossible. Typical scenarios include, for example, real-time voice or video data, IP multimedia multicasting, and wireless broadcasting systems.